<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>get_component_model_tree [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_matching.html">Matching</a> / <a href="toc_matching_componentbased.html">Component-Based</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">get_component_model_tree</span><span data-if="c" style="display:none;">T_get_component_model_tree</span><span data-if="cpp" style="display:none;">GetComponentModelTree</span><span data-if="dotnet" style="display:none;">GetComponentModelTree</span><span data-if="python" style="display:none;">get_component_model_tree</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">get_component_model_tree</span><span data-if="c" style="display:none;">T_get_component_model_tree</span><span data-if="cpp" style="display:none;">GetComponentModelTree</span><span data-if="dotnet" style="display:none;">GetComponentModelTree</span><span data-if="python" style="display:none;">get_component_model_tree</span></code> — Return the search tree of a component model.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>get_component_model_tree</b>( : <a href="#Tree"><i>Tree</i></a>, <a href="#Relations"><i>Relations</i></a> : <a href="#ComponentModelID"><i>ComponentModelID</i></a>, <a href="#RootComponent"><i>RootComponent</i></a>, <a href="#Image"><i>Image</i></a> : <a href="#StartNode"><i>StartNode</i></a>, <a href="#EndNode"><i>EndNode</i></a>, <a href="#Row"><i>Row</i></a>, <a href="#Column"><i>Column</i></a>, <a href="#Phi"><i>Phi</i></a>, <a href="#Length1"><i>Length1</i></a>, <a href="#Length2"><i>Length2</i></a>, <a href="#AngleStart"><i>AngleStart</i></a>, <a href="#AngleExtent"><i>AngleExtent</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_get_component_model_tree</b>(Hobject* <a href="#Tree"><i>Tree</i></a>, Hobject* <a href="#Relations"><i>Relations</i></a>, const Htuple <a href="#ComponentModelID"><i>ComponentModelID</i></a>, const Htuple <a href="#RootComponent"><i>RootComponent</i></a>, const Htuple <a href="#Image"><i>Image</i></a>, Htuple* <a href="#StartNode"><i>StartNode</i></a>, Htuple* <a href="#EndNode"><i>EndNode</i></a>, Htuple* <a href="#Row"><i>Row</i></a>, Htuple* <a href="#Column"><i>Column</i></a>, Htuple* <a href="#Phi"><i>Phi</i></a>, Htuple* <a href="#Length1"><i>Length1</i></a>, Htuple* <a href="#Length2"><i>Length2</i></a>, Htuple* <a href="#AngleStart"><i>AngleStart</i></a>, Htuple* <a href="#AngleExtent"><i>AngleExtent</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>GetComponentModelTree</b>(HObject* <a href="#Tree"><i>Tree</i></a>, HObject* <a href="#Relations"><i>Relations</i></a>, const HTuple&amp; <a href="#ComponentModelID"><i>ComponentModelID</i></a>, const HTuple&amp; <a href="#RootComponent"><i>RootComponent</i></a>, const HTuple&amp; <a href="#Image"><i>Image</i></a>, HTuple* <a href="#StartNode"><i>StartNode</i></a>, HTuple* <a href="#EndNode"><i>EndNode</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Phi"><i>Phi</i></a>, HTuple* <a href="#Length1"><i>Length1</i></a>, HTuple* <a href="#Length2"><i>Length2</i></a>, HTuple* <a href="#AngleStart"><i>AngleStart</i></a>, HTuple* <a href="#AngleExtent"><i>AngleExtent</i></a>)</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HComponentModel.html">HComponentModel</a>::<b>GetComponentModelTree</b>(HRegion* <a href="#Relations"><i>Relations</i></a>, const HTuple&amp; <a href="#RootComponent"><i>RootComponent</i></a>, const HTuple&amp; <a href="#Image"><i>Image</i></a>, HTuple* <a href="#StartNode"><i>StartNode</i></a>, HTuple* <a href="#EndNode"><i>EndNode</i></a>, HTuple* <a href="#Row"><i>Row</i></a>, HTuple* <a href="#Column"><i>Column</i></a>, HTuple* <a href="#Phi"><i>Phi</i></a>, HTuple* <a href="#Length1"><i>Length1</i></a>, HTuple* <a href="#Length2"><i>Length2</i></a>, HTuple* <a href="#AngleStart"><i>AngleStart</i></a>, HTuple* <a href="#AngleExtent"><i>AngleExtent</i></a>) const</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HComponentModel.html">HComponentModel</a>::<b>GetComponentModelTree</b>(HRegion* <a href="#Relations"><i>Relations</i></a>, Hlong <a href="#RootComponent"><i>RootComponent</i></a>, const HString&amp; <a href="#Image"><i>Image</i></a>, Hlong* <a href="#StartNode"><i>StartNode</i></a>, Hlong* <a href="#EndNode"><i>EndNode</i></a>, double* <a href="#Row"><i>Row</i></a>, double* <a href="#Column"><i>Column</i></a>, double* <a href="#Phi"><i>Phi</i></a>, double* <a href="#Length1"><i>Length1</i></a>, double* <a href="#Length2"><i>Length2</i></a>, double* <a href="#AngleStart"><i>AngleStart</i></a>, double* <a href="#AngleExtent"><i>AngleExtent</i></a>) const</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HComponentModel.html">HComponentModel</a>::<b>GetComponentModelTree</b>(HRegion* <a href="#Relations"><i>Relations</i></a>, Hlong <a href="#RootComponent"><i>RootComponent</i></a>, const char* <a href="#Image"><i>Image</i></a>, Hlong* <a href="#StartNode"><i>StartNode</i></a>, Hlong* <a href="#EndNode"><i>EndNode</i></a>, double* <a href="#Row"><i>Row</i></a>, double* <a href="#Column"><i>Column</i></a>, double* <a href="#Phi"><i>Phi</i></a>, double* <a href="#Length1"><i>Length1</i></a>, double* <a href="#Length2"><i>Length2</i></a>, double* <a href="#AngleStart"><i>AngleStart</i></a>, double* <a href="#AngleExtent"><i>AngleExtent</i></a>) const</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HComponentModel.html">HComponentModel</a>::<b>GetComponentModelTree</b>(HRegion* <a href="#Relations"><i>Relations</i></a>, Hlong <a href="#RootComponent"><i>RootComponent</i></a>, const wchar_t* <a href="#Image"><i>Image</i></a>, Hlong* <a href="#StartNode"><i>StartNode</i></a>, Hlong* <a href="#EndNode"><i>EndNode</i></a>, double* <a href="#Row"><i>Row</i></a>, double* <a href="#Column"><i>Column</i></a>, double* <a href="#Phi"><i>Phi</i></a>, double* <a href="#Length1"><i>Length1</i></a>, double* <a href="#Length2"><i>Length2</i></a>, double* <a href="#AngleStart"><i>AngleStart</i></a>, double* <a href="#AngleExtent"><i>AngleExtent</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>GetComponentModelTree</b>(out <a href="HObject.html">HObject</a> <a href="#Tree"><i>tree</i></a>, out <a href="HObject.html">HObject</a> <a href="#Relations"><i>relations</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ComponentModelID"><i>componentModelID</i></a>, <a href="HTuple.html">HTuple</a> <a href="#RootComponent"><i>rootComponent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Image"><i>image</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#StartNode"><i>startNode</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#EndNode"><i>endNode</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Phi"><i>phi</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length1"><i>length1</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length2"><i>length2</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AngleStart"><i>angleStart</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AngleExtent"><i>angleExtent</i></a>)</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HComponentModel.html">HComponentModel</a>.<b>GetComponentModelTree</b>(out <a href="HRegion.html">HRegion</a> <a href="#Relations"><i>relations</i></a>, <a href="HTuple.html">HTuple</a> <a href="#RootComponent"><i>rootComponent</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Image"><i>image</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#StartNode"><i>startNode</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#EndNode"><i>endNode</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Row"><i>row</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Column"><i>column</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Phi"><i>phi</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length1"><i>length1</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#Length2"><i>length2</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AngleStart"><i>angleStart</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#AngleExtent"><i>angleExtent</i></a>)</code></p>
<p>
<code><a href="HRegion.html">HRegion</a> <a href="HComponentModel.html">HComponentModel</a>.<b>GetComponentModelTree</b>(out <a href="HRegion.html">HRegion</a> <a href="#Relations"><i>relations</i></a>, int <a href="#RootComponent"><i>rootComponent</i></a>, string <a href="#Image"><i>image</i></a>, out int <a href="#StartNode"><i>startNode</i></a>, out int <a href="#EndNode"><i>endNode</i></a>, out double <a href="#Row"><i>row</i></a>, out double <a href="#Column"><i>column</i></a>, out double <a href="#Phi"><i>phi</i></a>, out double <a href="#Length1"><i>length1</i></a>, out double <a href="#Length2"><i>length2</i></a>, out double <a href="#AngleStart"><i>angleStart</i></a>, out double <a href="#AngleExtent"><i>angleExtent</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>get_component_model_tree</b>(<a href="#ComponentModelID"><i>component_model_id</i></a>: HHandle, <a href="#RootComponent"><i>root_component</i></a>: MaybeSequence[int], <a href="#Image"><i>image</i></a>: Union[str, int]) -&gt; Tuple[HObject, HObject, Sequence[int], Sequence[int], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]</code></p>
<p>
<code>def <b>get_component_model_tree_s</b>(<a href="#ComponentModelID"><i>component_model_id</i></a>: HHandle, <a href="#RootComponent"><i>root_component</i></a>: MaybeSequence[int], <a href="#Image"><i>image</i></a>: Union[str, int]) -&gt; Tuple[HObject, HObject, int, int, float, float, float, float, float, float, float]</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">get_component_model_tree</span><span data-if="c" style="display:none">get_component_model_tree</span><span data-if="cpp" style="display:none">GetComponentModelTree</span><span data-if="com" style="display:none">GetComponentModelTree</span><span data-if="dotnet" style="display:none">GetComponentModelTree</span><span data-if="python" style="display:none">get_component_model_tree</span></code> returns the search tree
<a href="#Tree"><i><code><span data-if="hdevelop" style="display:inline">Tree</span><span data-if="c" style="display:none">Tree</span><span data-if="cpp" style="display:none">Tree</span><span data-if="com" style="display:none">Tree</span><span data-if="dotnet" style="display:none">tree</span><span data-if="python" style="display:none">tree</span></code></i></a> and the associated relations <a href="#Relations"><i><code><span data-if="hdevelop" style="display:inline">Relations</span><span data-if="c" style="display:none">Relations</span><span data-if="cpp" style="display:none">Relations</span><span data-if="com" style="display:none">Relations</span><span data-if="dotnet" style="display:none">relations</span><span data-if="python" style="display:none">relations</span></code></i></a> of the
component model that is passed in <a href="#ComponentModelID"><i><code><span data-if="hdevelop" style="display:inline">ComponentModelID</span><span data-if="c" style="display:none">ComponentModelID</span><span data-if="cpp" style="display:none">ComponentModelID</span><span data-if="com" style="display:none">ComponentModelID</span><span data-if="dotnet" style="display:none">componentModelID</span><span data-if="python" style="display:none">component_model_id</span></code></i></a> in form
of regions as well as in numerical form.
<code><span data-if="hdevelop" style="display:inline">get_component_model_tree</span><span data-if="c" style="display:none">get_component_model_tree</span><span data-if="cpp" style="display:none">GetComponentModelTree</span><span data-if="com" style="display:none">GetComponentModelTree</span><span data-if="dotnet" style="display:none">GetComponentModelTree</span><span data-if="python" style="display:none">get_component_model_tree</span></code> is particularly useful in order to
visualize the search order of the components, which was
automatically computed in <a href="create_trained_component_model.html"><code><span data-if="hdevelop" style="display:inline">create_trained_component_model</span><span data-if="c" style="display:none">create_trained_component_model</span><span data-if="cpp" style="display:none">CreateTrainedComponentModel</span><span data-if="com" style="display:none">CreateTrainedComponentModel</span><span data-if="dotnet" style="display:none">CreateTrainedComponentModel</span><span data-if="python" style="display:none">create_trained_component_model</span></code></a> or
<a href="create_component_model.html"><code><span data-if="hdevelop" style="display:inline">create_component_model</span><span data-if="c" style="display:none">create_component_model</span><span data-if="cpp" style="display:none">CreateComponentModel</span><span data-if="com" style="display:none">CreateComponentModel</span><span data-if="dotnet" style="display:none">CreateComponentModel</span><span data-if="python" style="display:none">create_component_model</span></code></a>.
</p>
<p>Because the search tree depends on the selected root component, the
root component must be passed in <a href="#RootComponent"><i><code><span data-if="hdevelop" style="display:inline">RootComponent</span><span data-if="c" style="display:none">RootComponent</span><span data-if="cpp" style="display:none">RootComponent</span><span data-if="com" style="display:none">RootComponent</span><span data-if="dotnet" style="display:none">rootComponent</span><span data-if="python" style="display:none">root_component</span></code></i></a>. The nodes
in the tree <a href="#Tree"><i><code><span data-if="hdevelop" style="display:inline">Tree</span><span data-if="c" style="display:none">Tree</span><span data-if="cpp" style="display:none">Tree</span><span data-if="com" style="display:none">Tree</span><span data-if="dotnet" style="display:none">tree</span><span data-if="python" style="display:none">tree</span></code></i></a> represent the model components, the
connecting lines between the nodes indicate which components are
searched relative to each other. The position of the nodes
corresponds to the position of the components in the model image (if
<a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> = <i><span data-if="hdevelop" style="display:inline">'model_image'</span><span data-if="c" style="display:none">"model_image"</span><span data-if="cpp" style="display:none">"model_image"</span><span data-if="com" style="display:none">"model_image"</span><span data-if="dotnet" style="display:none">"model_image"</span><span data-if="python" style="display:none">"model_image"</span></i> or <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> =
<i>0</i>) or in a training image (if <a href="#Image"><i><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></i></a> &gt;=
<i>1</i>).  In the latter case, the component model must have been
created based on a component training result with
<a href="create_trained_component_model.html"><code><span data-if="hdevelop" style="display:inline">create_trained_component_model</span><span data-if="c" style="display:none">create_trained_component_model</span><span data-if="cpp" style="display:none">CreateTrainedComponentModel</span><span data-if="com" style="display:none">CreateTrainedComponentModel</span><span data-if="dotnet" style="display:none">CreateTrainedComponentModel</span><span data-if="python" style="display:none">create_trained_component_model</span></code></a>.
</p>
<p>Let <em>n</em> be the number of components in
<a href="#ComponentModelID"><i><code><span data-if="hdevelop" style="display:inline">ComponentModelID</span><span data-if="c" style="display:none">ComponentModelID</span><span data-if="cpp" style="display:none">ComponentModelID</span><span data-if="com" style="display:none">ComponentModelID</span><span data-if="dotnet" style="display:none">componentModelID</span><span data-if="python" style="display:none">component_model_id</span></code></i></a>.  The region object tuple
<a href="#Relations"><i><code><span data-if="hdevelop" style="display:inline">Relations</span><span data-if="c" style="display:none">Relations</span><span data-if="cpp" style="display:none">Relations</span><span data-if="com" style="display:none">Relations</span><span data-if="dotnet" style="display:none">relations</span><span data-if="python" style="display:none">relations</span></code></i></a> of length <em>n</em> is designed as follows: For
each component a separate region is returned. The positions of all
components in the image are represented by circles with a radius of
3 pixels. For each component other than the root component
<a href="#RootComponent"><i><code><span data-if="hdevelop" style="display:inline">RootComponent</span><span data-if="c" style="display:none">RootComponent</span><span data-if="cpp" style="display:none">RootComponent</span><span data-if="com" style="display:none">RootComponent</span><span data-if="dotnet" style="display:none">rootComponent</span><span data-if="python" style="display:none">root_component</span></code></i></a>, additionally the position relation and the
orientation relation relative to the predecessor component in the
search tree are represented.  The position relation is represented
by a rectangle, the orientation relation is represented by a circle
sector with a radius of 30 pixels. The center of the circle is
placed at the mean relative position of the component. The rectangle
describes the movement of the reference point of the respective
component relative to the pose of its predecessor component, the
circle sector describes the variation of the relative orientation. A
relative orientation of 0 corresponds to the relative orientation of
both components in the model image.
</p>
<p>In addition to the regions, the search tree as well as the
associated relations are also returned in numerical form. The search
tree is described by the two tuples <a href="#StartNode"><i><code><span data-if="hdevelop" style="display:inline">StartNode</span><span data-if="c" style="display:none">StartNode</span><span data-if="cpp" style="display:none">StartNode</span><span data-if="com" style="display:none">StartNode</span><span data-if="dotnet" style="display:none">startNode</span><span data-if="python" style="display:none">start_node</span></code></i></a> and
<a href="#EndNode"><i><code><span data-if="hdevelop" style="display:inline">EndNode</span><span data-if="c" style="display:none">EndNode</span><span data-if="cpp" style="display:none">EndNode</span><span data-if="com" style="display:none">EndNode</span><span data-if="dotnet" style="display:none">endNode</span><span data-if="python" style="display:none">end_node</span></code></i></a>, both of length <em>n</em>, which contain the start
and the end node of all arcs in the tree. The nodes contain the
indices of the components. This means that during the search the
component that is described by the end node is searched relative to
the pose of the component that is described by the start node
(predecessor component). Since the root component is not searched
relative to any other component, and hence does not have a
predecessor component, the associated start node is set to
<i>-1</i>.  The relations are returned in <a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a>,
<a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a>, <a href="#Phi"><i><code><span data-if="hdevelop" style="display:inline">Phi</span><span data-if="c" style="display:none">Phi</span><span data-if="cpp" style="display:none">Phi</span><span data-if="com" style="display:none">Phi</span><span data-if="dotnet" style="display:none">phi</span><span data-if="python" style="display:none">phi</span></code></i></a>, <a href="#Length1"><i><code><span data-if="hdevelop" style="display:inline">Length1</span><span data-if="c" style="display:none">Length1</span><span data-if="cpp" style="display:none">Length1</span><span data-if="com" style="display:none">Length1</span><span data-if="dotnet" style="display:none">length1</span><span data-if="python" style="display:none">length_1</span></code></i></a>, <a href="#Length2"><i><code><span data-if="hdevelop" style="display:inline">Length2</span><span data-if="c" style="display:none">Length2</span><span data-if="cpp" style="display:none">Length2</span><span data-if="com" style="display:none">Length2</span><span data-if="dotnet" style="display:none">length2</span><span data-if="python" style="display:none">length_2</span></code></i></a>,
<a href="#AngleStart"><i><code><span data-if="hdevelop" style="display:inline">AngleStart</span><span data-if="c" style="display:none">AngleStart</span><span data-if="cpp" style="display:none">AngleStart</span><span data-if="com" style="display:none">AngleStart</span><span data-if="dotnet" style="display:none">angleStart</span><span data-if="python" style="display:none">angle_start</span></code></i></a>, and <a href="#AngleExtent"><i><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></i></a>. These parameters are
tuples of length <em>n</em>, and contain the relations of all
components relative to their associated predecessor component, where
the order of the values within the tuples is determined by the index
of the corresponding component.  The position relation is described
by the parameters of the corresponding rectangle <a href="#Row"><i><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></i></a>,
<a href="#Column"><i><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></i></a>, <a href="#Phi"><i><code><span data-if="hdevelop" style="display:inline">Phi</span><span data-if="c" style="display:none">Phi</span><span data-if="cpp" style="display:none">Phi</span><span data-if="com" style="display:none">Phi</span><span data-if="dotnet" style="display:none">phi</span><span data-if="python" style="display:none">phi</span></code></i></a>, <a href="#Length1"><i><code><span data-if="hdevelop" style="display:inline">Length1</span><span data-if="c" style="display:none">Length1</span><span data-if="cpp" style="display:none">Length1</span><span data-if="com" style="display:none">Length1</span><span data-if="dotnet" style="display:none">length1</span><span data-if="python" style="display:none">length_1</span></code></i></a>, and
<a href="#Length2"><i><code><span data-if="hdevelop" style="display:inline">Length2</span><span data-if="c" style="display:none">Length2</span><span data-if="cpp" style="display:none">Length2</span><span data-if="com" style="display:none">Length2</span><span data-if="dotnet" style="display:none">length2</span><span data-if="python" style="display:none">length_2</span></code></i></a> (see <a href="gen_rectangle2.html"><code><span data-if="hdevelop" style="display:inline">gen_rectangle2</span><span data-if="c" style="display:none">gen_rectangle2</span><span data-if="cpp" style="display:none">GenRectangle2</span><span data-if="com" style="display:none">GenRectangle2</span><span data-if="dotnet" style="display:none">GenRectangle2</span><span data-if="python" style="display:none">gen_rectangle2</span></code></a>).  The orientation
relation is described by the starting angle <a href="#AngleStart"><i><code><span data-if="hdevelop" style="display:inline">AngleStart</span><span data-if="c" style="display:none">AngleStart</span><span data-if="cpp" style="display:none">AngleStart</span><span data-if="com" style="display:none">AngleStart</span><span data-if="dotnet" style="display:none">angleStart</span><span data-if="python" style="display:none">angle_start</span></code></i></a> and
the angle extent <a href="#AngleExtent"><i><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></i></a>.
</p>
<p>For the root component as well as for components that do not have a
predecessor in the current image or that have not been found in the
current image, an empty region is returned and the corresponding
values of the seven parameters are set to <i>0</i>.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="Tree" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Tree</span><span data-if="c" style="display:none">Tree</span><span data-if="cpp" style="display:none">Tree</span><span data-if="com" style="display:none">Tree</span><span data-if="dotnet" style="display:none">tree</span><span data-if="python" style="display:none">tree</span></code></b> (output_object)  </span><span>region <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="c" style="display:none">Hobject *</span></span>
</div>
<p class="pardesc">Search tree.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Relations" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Relations</span><span data-if="c" style="display:none">Relations</span><span data-if="cpp" style="display:none">Relations</span><span data-if="com" style="display:none">Relations</span><span data-if="dotnet" style="display:none">relations</span><span data-if="python" style="display:none">relations</span></code></b> (output_object)  </span><span>region-array <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HRegion.html">HRegion</a></span><span data-if="c" style="display:none">Hobject *</span></span>
</div>
<p class="pardesc">Relations of components that are connected in
the search tree.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ComponentModelID" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ComponentModelID</span><span data-if="c" style="display:none">ComponentModelID</span><span data-if="cpp" style="display:none">ComponentModelID</span><span data-if="com" style="display:none">ComponentModelID</span><span data-if="dotnet" style="display:none">componentModelID</span><span data-if="python" style="display:none">component_model_id</span></code></b> (input_control)  </span><span>component_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HComponentModel.html">HComponentModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the component model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="RootComponent" class="parname"><b><code><span data-if="hdevelop" style="display:inline">RootComponent</span><span data-if="c" style="display:none">RootComponent</span><span data-if="cpp" style="display:none">RootComponent</span><span data-if="com" style="display:none">RootComponent</span><span data-if="dotnet" style="display:none">rootComponent</span><span data-if="python" style="display:none">root_component</span></code></b> (input_control)  </span><span>integer(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Index of the root component.</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0, 1, 2, 3, 4, 5, 6, 7, 8</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Image" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Image</span><span data-if="c" style="display:none">Image</span><span data-if="cpp" style="display:none">Image</span><span data-if="com" style="display:none">Image</span><span data-if="dotnet" style="display:none">image</span><span data-if="python" style="display:none">image</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[str, int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Image for which the tree is to be returned.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'model_image'</span>
    <span data-if="c" style="display:none">"model_image"</span>
    <span data-if="cpp" style="display:none">"model_image"</span>
    <span data-if="com" style="display:none">"model_image"</span>
    <span data-if="dotnet" style="display:none">"model_image"</span>
    <span data-if="python" style="display:none">"model_image"</span>
</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'model_image'</span><span data-if="c" style="display:none">"model_image"</span><span data-if="cpp" style="display:none">"model_image"</span><span data-if="com" style="display:none">"model_image"</span><span data-if="dotnet" style="display:none">"model_image"</span><span data-if="python" style="display:none">"model_image"</span>, 0, 1, 2, 3, 4, 5, 6, 7, 8</p>
</div>
  <div class="par">
<div class="parhead">
<span id="StartNode" class="parname"><b><code><span data-if="hdevelop" style="display:inline">StartNode</span><span data-if="c" style="display:none">StartNode</span><span data-if="cpp" style="display:none">StartNode</span><span data-if="com" style="display:none">StartNode</span><span data-if="dotnet" style="display:none">startNode</span><span data-if="python" style="display:none">start_node</span></code></b> (output_control)  </span><span>integer(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Component index of the start node of an arc in the
search tree.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="EndNode" class="parname"><b><code><span data-if="hdevelop" style="display:inline">EndNode</span><span data-if="c" style="display:none">EndNode</span><span data-if="cpp" style="display:none">EndNode</span><span data-if="com" style="display:none">EndNode</span><span data-if="dotnet" style="display:none">endNode</span><span data-if="python" style="display:none">end_node</span></code></b> (output_control)  </span><span>integer(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i>)</span><span data-if="c" style="display:none"> (<i>Hlong</i>)</span></span>
</div>
<p class="pardesc">Component index of the end node of an arc in the
search tree.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Row" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Row</span><span data-if="c" style="display:none">Row</span><span data-if="cpp" style="display:none">Row</span><span data-if="com" style="display:none">Row</span><span data-if="dotnet" style="display:none">row</span><span data-if="python" style="display:none">row</span></code></b> (output_control)  </span><span>rectangle2.center.y(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Row coordinate of the center of the rectangle
representing the relation.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Column" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Column</span><span data-if="c" style="display:none">Column</span><span data-if="cpp" style="display:none">Column</span><span data-if="com" style="display:none">Column</span><span data-if="dotnet" style="display:none">column</span><span data-if="python" style="display:none">column</span></code></b> (output_control)  </span><span>rectangle2.center.x(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Column index of the center of the rectangle
representing the relation.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Phi" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Phi</span><span data-if="c" style="display:none">Phi</span><span data-if="cpp" style="display:none">Phi</span><span data-if="com" style="display:none">Phi</span><span data-if="dotnet" style="display:none">phi</span><span data-if="python" style="display:none">phi</span></code></b> (output_control)  </span><span>rectangle2.angle.rad(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Orientation of the rectangle representing
the relation (radians).</p>
<p class="pardesc"><span class="parcat">Assertion:
      </span><code>- pi / 2 &lt; Phi &amp;&amp; Phi &lt;= pi / 2</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Length1" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Length1</span><span data-if="c" style="display:none">Length1</span><span data-if="cpp" style="display:none">Length1</span><span data-if="com" style="display:none">Length1</span><span data-if="dotnet" style="display:none">length1</span><span data-if="python" style="display:none">length_1</span></code></b> (output_control)  </span><span>rectangle2.hwidth(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">First radius (half length) of the rectangle
representing the relation.</p>
<p class="pardesc"><span class="parcat">Assertion:
      </span><code>Length1 &gt;= 0.0</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Length2" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Length2</span><span data-if="c" style="display:none">Length2</span><span data-if="cpp" style="display:none">Length2</span><span data-if="com" style="display:none">Length2</span><span data-if="dotnet" style="display:none">length2</span><span data-if="python" style="display:none">length_2</span></code></b> (output_control)  </span><span>rectangle2.hheight(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Second radius (half width) of the rectangle
representing the relation.</p>
<p class="pardesc"><span class="parcat">Assertion:
      </span><code>Length2 &gt;= 0.0 &amp;&amp; Length2 &lt;= Length1</code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="AngleStart" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AngleStart</span><span data-if="c" style="display:none">AngleStart</span><span data-if="cpp" style="display:none">AngleStart</span><span data-if="com" style="display:none">AngleStart</span><span data-if="dotnet" style="display:none">angleStart</span><span data-if="python" style="display:none">angle_start</span></code></b> (output_control)  </span><span>angle.rad(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Smallest relative orientation angle.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="AngleExtent" class="parname"><b><code><span data-if="hdevelop" style="display:inline">AngleExtent</span><span data-if="c" style="display:none">AngleExtent</span><span data-if="cpp" style="display:none">AngleExtent</span><span data-if="com" style="display:none">AngleExtent</span><span data-if="dotnet" style="display:none">angleExtent</span><span data-if="python" style="display:none">angle_extent</span></code></b> (output_control)  </span><span>angle.rad(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real)</span><span data-if="dotnet" style="display:none"> (<i>double</i>)</span><span data-if="cpp" style="display:none"> (<i>double</i>)</span><span data-if="c" style="display:none"> (<i>double</i>)</span></span>
</div>
<p class="pardesc">Extent of the relative orientation angle.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* Read the model image.
read_image (ModelImage, 'model_image.tif')
* Describe the model components.
gen_rectangle2 (ComponentRegions, 318, 109, -1.62, 34, 19)
gen_rectangle2 (Rectangle2, 342, 238, -1.63, 32, 17)
gen_rectangle2 (Rectangle3, 355, 505, 1.41, 25, 17)
concat_obj (ComponentRegions, Rectangle2, ComponentRegions)
concat_obj (ComponentRegions, Rectangle3, ComponentRegions)
* Create the component model.
create_component_model (ModelImage, ComponentRegions, 20, 20, rad(25), 0, \
                        rad(360), 15, 40, 15, 10, 0.8, 0, 0, 'none', \
                        'use_polarity', 'true', ComponentModelID, \
                        RootRanking)
* Get the component model tree.
get_component_model_tree (Tree, Relations, ComponentModelID, RootRanking, \
                          'model_image', StartNode, EndNode, Row, Column, \
                          Phi, Length1, Length2, AngleStart, AngleExtent)
dev_set_colored (12)
dev_display (ModelImage)
dev_display (Tree)
dev_display (Relations)
</pre>
<h2 id="sec_result">结果</h2>
<p>如果参数均有效，算子
<code><span data-if="hdevelop" style="display:inline">get_component_model_tree</span><span data-if="c" style="display:none">get_component_model_tree</span><span data-if="cpp" style="display:none">GetComponentModelTree</span><span data-if="com" style="display:none">GetComponentModelTree</span><span data-if="dotnet" style="display:none">GetComponentModelTree</span><span data-if="python" style="display:none">get_component_model_tree</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    .  If
necessary an exception is raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="create_trained_component_model.html"><span data-if="hdevelop" style="display:inline">create_trained_component_model</span><span data-if="c" style="display:none">create_trained_component_model</span><span data-if="cpp" style="display:none">CreateTrainedComponentModel</span><span data-if="com" style="display:none">CreateTrainedComponentModel</span><span data-if="dotnet" style="display:none">CreateTrainedComponentModel</span><span data-if="python" style="display:none">create_trained_component_model</span></a></code>, 
<code><a href="create_component_model.html"><span data-if="hdevelop" style="display:inline">create_component_model</span><span data-if="c" style="display:none">create_component_model</span><span data-if="cpp" style="display:none">CreateComponentModel</span><span data-if="com" style="display:none">CreateComponentModel</span><span data-if="dotnet" style="display:none">CreateComponentModel</span><span data-if="python" style="display:none">create_component_model</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="train_model_components.html"><span data-if="hdevelop" style="display:inline">train_model_components</span><span data-if="c" style="display:none">train_model_components</span><span data-if="cpp" style="display:none">TrainModelComponents</span><span data-if="com" style="display:none">TrainModelComponents</span><span data-if="dotnet" style="display:none">TrainModelComponents</span><span data-if="python" style="display:none">train_model_components</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
Matching</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
